package org.rslai.autotest.core.page;

/**
 * 一组自定义测试断言方法接口<br>
 * 将junit断言进行了一次封装
 * @author rslai
 */
public interface Assertions {

	/**
	 * 断言输入内容是否为true
	 * @param condition 检查内容
	 */
	public void assertTrue(boolean condition);

	/**
	 * 断言输入内容是否为true，否则抛出message
	 * @param message 识别消息不等时抛出此信息（允许null）
	 * @param condition 检查内容
	 */
	public void assertTrue(String message, boolean condition);

	/**
	 * 断言输入内容是否为false
	 * @param condition 检查内容
	 */
	public void assertFalse(boolean condition);

	/**
	 * 断言输入内容是否为false，否则抛出message
	 * @param message 识别消息不等时抛出此信息（允许null）
	 * @param condition 检查内容
	 */
	public void assertFalse(String message, boolean condition);
	
	/**
	 * 断言两个对象是否相等。如果预期与实际是空的，如果 预期(expected) 和 实际(actual) 是 null，则认为他们相等。<br>
	 * 默认会删除空白字符（例：多个空格会转为为1个空格、\r\n\t也会转为一个空格）。
	 * @param expected 预期值
	 * @param actual 实际值
	 */
	public void assertEquals(String expected, String actual);

	/**
	 * 断言两个对象是否相等。如果不等，抛出你指定的 message。如果 预期(expected) 和 实际(actual) 是 null，则认为他们相等。<br>
	 * 默认会删除空白字符（例：多个空格会转为为1个空格、\r\n\t也会转为一个空格）。
	 * @param message 识别消息不等时抛出此信息（允许null）
	 * @param expected 预期值
	 * @param actual 实际值
	 */
	public void assertEquals(String message, String expected, String actual);

	/**
	 * 断言两个对象是否相等。如果预期与实际是空的，如果 预期(expected) 和 实际(actual) 是 null，则认为他们相等。
	 * @param expected 预期值
	 * @param actual 实际值
	 * @param removeBlank true为删除空白字符（例：多个空格会转为为1个空格、\r\n\t也会转为一个空格）
	 */
	public void assertEquals(String expected, String actual, boolean removeBlank);

	/**
	 * 断言两个对象是否相等。如果不等，抛出你指定的 message。如果 预期(expected) 和 实际(actual) 是 null，则认为他们相等。
	 * @param message 识别消息不等时抛出此信息（允许null）
	 * @param expected 预期值
	 * @param actual 实际值
	 * @param removeBlank true为删除空白字符（例：多个空格会转为为1个空格、\r\n\t也会转为一个空格）
	 */
	public void assertEquals(String message, String expected, String actual, boolean removeBlank);

	/**
	 * 断言是否包含指定字符。如果不包含，抛出你指定的 message。
	 * 默认会删除空白字符（例：多个空格会转为为1个空格、\r\n\t也会转为一个空格）。
	 * @param actual 指定字符串
	 * @param containsString 包含的字符串
	 */
	public void assertContains (String actual, String containsString);

	/**
	 * 断言是否包含指定字符。如果不包含，抛出你指定的 message。<br>
	 * 默认会删除空白字符（例：多个空格会转为为1个空格、\r\n\t也会转为一个空格）。
	 * @param message 识别消息不等时抛出此信息（允许null）
	 * @param actual 指定字符串
	 * @param containsString 包含的字符串
	 */
	public void assertContains (String message, String actual, String containsString);

	/**
	 * 断言是否包含指定字符。如果不包含，抛出你指定的 message。
	 * @param actual 指定字符串
	 * @param containsString 包含的字符串
	 * @param removeBlank true为删除空白字符（例：多个空格会转为为1个空格、\r\n\t也会转为一个空格）
	 */
	public void assertContains (String actual, String containsString, boolean removeBlank);
	
	/**
	 * 断言是否包含指定字符。如果不包含，抛出你指定的 message。
	 * @param message 识别消息不等时抛出此信息（允许null）
	 * @param actual 指定字符串
	 * @param containsString 包含的字符串
	 * @param removeBlank true为删除空白字符（例：多个空格会转为为1个空格、\r\n\t也会转为一个空格）
	 */
	public void assertContains (String message, String actual, String containsString, boolean removeBlank);

}
